package cn.xxi.ai.knowledge.entity;

import cn.xxi.ai.common.entity.BaseEntity;
import cn.xxi.ai.file.entity.File;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 文档实体
 * 
 * @author bingo
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class Document extends BaseEntity {

    /** 所属知识库 */
    private Knowledge knowledge;

    /** 文档名称 */
    private String name;

    /** 文件 */
    private File file;

    /** 文档片段 */
    private List<Segment> segments;

    /** 字符总数（手动计算，不映射数据库） */
    private Integer charCount;

    public Integer getCharCount() {
        if (segments == null || segments.isEmpty()) return 0;
        return segments.stream().mapToInt(Segment::getCharCount).sum();
    }
}